#pragma once

#include "IXBaseObj.h"

/**
 *  Interface auto maintain mapping buffer.
 *
 */
class ExportXSkinLib IXFixedBuffer : public IXBaseObj
{
    DEF_INTERFACE(IXFixedBuffer, _T("{0F4C99DA-25DF-44b9-80B1-D36ED217A507}"));
public:

    /**
    *  Put data about the buffer.
    *
    *  @param pData    Address of the buffer.
    *  @param dwSize   Size of the buffer.
    *
    */
    virtual HRESULT STDMETHODCALLTYPE   put_Data(IN LPCVOID pData, IN DWORD dwOffset, IN DWORD dwSize) = 0;

    /**
    *  Get data about the buffer.
    *
    *  @param pData    Address of the buffer.
    *  @param dwSize   Size of the buffer.
    *
    */
    virtual HRESULT STDMETHODCALLTYPE   get_Data(OUT LPCVOID* ppData, OUT LPDWORD pdwSize) = 0;
};
